package logic

import "github.com/go-vgo/robotgo"

//Go语言：模拟鼠标操作（go-vgo/robotgo）
//https://zhuanlan.zhihu.com/p/140433402
//https://gitee.com/veni0/robotgo?_from=gitee_search

//安装	go get github.com/go-vgo/robotgo

//按键操作：

func keyOperation(){
	// 向上滚动：3行
	robotgo.ScrollMouse(3, `up`)
	// 向下滚动：2行
	robotgo.ScrollMouse(2, `down`)

	// 按下鼠标左键
	// 第1个参数：left(左键) / center(中键，即：滚轮) / right(右键)
	// 第2个参数：是否双击
	robotgo.MouseClick(`left`, false)

	// 按住鼠标左键
	robotgo.MouseToggle(`down`, `left`)
	// 解除按住鼠标左键
	robotgo.MouseToggle(`up`, `left`)
}

//位置操作
func positionOperation(){
	// 将鼠标移动到屏幕 x:800 y:400 的位置（闪现到指定位置）
	robotgo.MoveMouse(800, 400)

	// 将鼠标移动到屏幕 x:800 y:400 的位置（模仿人类操作）
	robotgo.MoveMouseSmooth(800, 400)

	// 将鼠标移动到屏幕 x:800 y:400 的位置（模仿人类操作）
	// 第3个参数：纵坐标x 的延迟到达时间
	// 第4个参数：横坐标y 的延迟到达时间
	robotgo.MoveMouseSmooth(800, 400, 20.0, 200.0)
}

//组合操作
func combinationOperation(){
	// 移动鼠标到 x:800 y:400 后，双击鼠标左键
	robotgo.MoveClick(800, 400, `left`, true)
}

//所在位置
func currentLocation(){
	// 获取当前鼠标所在的位置
	x, y := robotgo.GetMousePos()
	println(`x：`, x, ` y：`, y)
}